iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0

上篇回顧

昨天我們介紹了雜湊運算是怎麼運行的,並對比特幣區塊鏈的雜湊隨機變數(nonce)提出了疑惑,今天來看看它到底是幹嘛的吧!


一個比特幣區塊

昨天看不懂的圖今天要來解釋了!廢話不多說 先上圖:https://ithelp.ithome.com.tw/upload/images/20220916/20152537AWTbWf1wZf.png
這是一個比特幣區塊包含的資料,讓我們來逐一解釋吧...

交易紀錄

交易紀錄(Trasaction)儲存在圖中的第三個框框,也就是tx的欄位,這裡每一個逗號都記錄了一筆完整的交易,所以這也是整個區塊中最重要的部分,而其他部分都是在驗證區塊。繼續往上看到根雜湊(merkleroot),這串數值為所有交易雜湊出來的結果,也就是由整個tx欄位雜湊而來。

區塊的雜湊

最上面第一個欄位的雜湊(hash)其實就是這整個區塊的雜湊值,而它是經由剛剛前面講的根雜湊(merkleroot)隨機變數(nonce)雜湊演算出來的結果。重點來了! 讓我們看到第二欄中的困難度(difficulty),他其實不是一串小數! 他的小數點後面為底數,前面為指數,而其算出來的數值即為困難度,且必須小於整個區塊的雜湊值。

雜湊值跟困難度比大小

沒錯! 前面講的雖然有一點饒口聽不太懂,但其實礦工在做的事情就是猜一個nonce,與交易紀錄的根雜湊merkleroot再雜湊一次,且最終得到的雜湊值需小於困難度,若是雜湊值太大就必須要重新猜nonce繼續雜湊,直到找到合適的值雜湊出來比困難度還小,方可完成挖礦獲得獎勵。而這個猜nonce的過程可能需要嘗試數十億次,並不簡單喔!

再一層保護

第二欄中有一個叫previousblockhash的值,而那正是上一個區塊的最終雜湊值。換句話說,每個區塊都會與上一個區塊有所關聯,只要任何一個區塊的資料被修改雜湊值不一樣就會馬上被發現。


小結

今天的內容比較難一點,解釋了一個比特幣區塊是如何被算出來的,建議大家多看幾次圖文。猜nonce,雜湊,比大小就是整個挖礦的過程。

<上一篇> [Day 5] 挖礦?比特幣運行的必需品(二)雜湊運算
<下一篇> [Day 7] 區塊鏈不一定去中心化?


參考資料:


上一篇
[Day 5] 挖礦?比特幣運行的必需品(二)雜湊運算
下一篇
[Day 7] 區塊鏈不一定去中心化?
系列文
NFT、區塊鏈、比特幣,這些到底是什麼?? 讓我們從頭認識這些酷東西吧! 發出屬於自己的NFT!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言